The discussion below is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.
Small computing devices such as personal digital assistants (PDA), devices and portable phones are used with ever increasing frequency by people in their day-to-day activities. With the increase in processing power now available for microprocessors used to run these devices, the functionality of these devices is increasing, and in some cases, merging. For instance, many portable phones now can be used to access and browse the Internet as well as can be used to store personal information such as addresses, phone numbers and the like.
In view that these computing devices are being used with increasing frequency, it is therefore necessary to provide an easy interface for the user to enter information into the computing device. Unfortunately, due to the desire to keep these devices as small as possible in order that they are easily carried, conventional keyboards having all the letters of the alphabet as isolated buttons are usually not possible due to the limited surface area available on the housings of the computing devices. Even beyond the example of small computing devices, there is interest in providing a more convenient interface for all types of computing devices.
To address this problem, there has been increased interest and adoption of using voice or speech to access information, whether locally on the computing device, over a local network, or over a wide area network such as the Internet. With speech recognition, a dialog interaction is generally conducted between the user and the computing device. The user receives information typically audibly and/or visually, while responding audibly to prompts or issuing commands. However, it is often desirable to ascertain the performance of the application during development or after it has been deployed. In particular, it is desired to ascertain usage and/or success rates of users with the application. With such information, the developer may be able to “tune” (i.e. make adjustments) to the application in order to better meet the needs of the users of the applications. For example, it may be helpful to identify portions of the dialog between the application and the users where problems are most likely to be encountered. In this manner, those portions of the dialog can be adjusted to alleviate confusion.
Recording or logging interaction data between the application and the user(s) is done to measure performance of the application. However, in general, logging application interaction data may suffer from any one or combination of the following drawbacks to name just a few: (1) the data is cumbersome to generate, that is, the application developer must take care to instrument (i.e. define and implement a set of messages used to log system data) the application in a variety of locations in the code in order to acquire the correct data for analysis and tuning; (2) the instrumentation process is typically done in an application-specific manner, and is not portable across different applications; and (3) the interaction log data is of limited value unless a manual transcription process (and/or other explicit human intervention) is applied, which annotates the data with richer information on the intent of the user.